// 抽象类，必须通过abstract关键字声明
abstract class Phone {
  // 声明抽象方法
  void processor(); // 手机处理器

  void camera(); // 手机摄像头

  void info() {
    print('抽象类中的普通方法');
  }
}

class Xiaomi extends Phone {
  // 普通类继承了抽象类，必须实现抽象类中的所有抽象方法

  @override
  void processor() {
    print('骁龙处理器 888');
  }

  @override
  void camera() {
    print('三星摄像头');
  }
}

class Huawei extends Phone {
  // 普通类继承了抽象类，必须实现抽象类中的所有抽象方法

  @override
  void processor() {
    print('麒麟处理器990');
  }

  @override
  void camera() {
    print('莱卡摄像头');
  }
}

void main(List<String> args) {
  // 抽象类，不能被实例化
  // Phone p1 = new Phone();

  Xiaomi m = new Xiaomi();
  m.processor();
  m.camera();
  m.info();
}
